﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ServerClasses.interfaces
{
    public interface IAccesoADatos
    {
       
        /// <summary>
        /// Agrega una receta al modelo.
        /// No se refleja el cambio en la base (para hacerlo llamar a guardarCambios()).
        /// <param name="receta">La receta a agregar</param>
        /// </summary>
        void agregarReceta(Receta receta);

        /// <summary>
        /// Elimina una receta del modelo.
        /// No se refleja el cambio en la base (para hacerlo llamar a guardarCambios()).
        /// Si la receta no existe no hace nada.
        /// <param name="receta">El id de la receta a eliminar</param>
        /// </summary>
        void eliminarReceta(int idReceta);

        /// <summary>
        /// Elimina una receta del modelo. 
        /// No se refleja el cambio en la base (para hacerlo llamar a guardarCambios()).
        /// <param name="receta">La receta a eliminar</param>
        /// </summary>
        void eliminarReceta(Receta receta);

        /// <summary>
        /// <param name="texto">El texto a buscar dentro del titulo de las recetas</param>
        /// Busca en la base las recetas que contengan el string <paramref name="texto"/> en su titulo.
        /// <returns> Una List<Receta> con las recetas encontradas.</returns>
        /// </summary>
        List<Receta> buscarRecetas(String texto);


        /// <summary>
        /// Refleja los cambios realizados en el modelo (desde la ultima llamada a este metodo) en la base de datos.
        /// </summary>
        void guardarCambios();

        //Se obtiene la receta cuyo id es "id"
        Receta obtenerReceta(int id);

    }
}
